home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / MTMDI.PAK / MDI.CPP < prev    next >
C/C++ Source or Header  |  1997-05-06  |  3KB  |  105 lines

  1. // mdi.cpp : Defines the class behaviors for the application.
  2. //
  3. // This is a part of the Microsoft Foundation Classes C++ library.
  4. // Copyright (C) 1992-1995 Microsoft Corporation
  5. // All rights reserved.
  6. //
  7. // This source code is only intended as a supplement to the
  8. // Microsoft Foundation Classes Reference and related
  9. // electronic documentation provided with the library.
  10. // See these sources for detailed information regarding the
  11. // Microsoft Foundation Classes product.
  12.  
  13. #include "stdafx.h"
  14. #include "mdi.h"
  15.  
  16. #include "mainfrm.h"
  17. #include "bounce.h"
  18. #include "mtbounce.h"
  19.  
  20. #ifdef _DEBUG
  21. #undef THIS_FILE
  22. static char BASED_CODE THIS_FILE[] = __FILE__;
  23. #endif
  24.  
  25. /////////////////////////////////////////////////////////////////////////////
  26. // CMdiApp
  27.  
  28. BEGIN_MESSAGE_MAP(CMdiApp, CWinApp)
  29.     //{{AFX_MSG_MAP(CMdiApp)
  30.     ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
  31.     //}}AFX_MSG_MAP
  32. END_MESSAGE_MAP()
  33.  
  34. /////////////////////////////////////////////////////////////////////////////
  35. // CMdiApp construction
  36. // Place all significant initialization in InitInstance
  37.  
  38. CMdiApp::CMdiApp()
  39. {
  40. }
  41.  
  42. /////////////////////////////////////////////////////////////////////////////
  43. // The one and only CMdiApp object
  44.  
  45. CMdiApp NEAR theApp;
  46.  
  47. /////////////////////////////////////////////////////////////////////////////
  48. // CMdiApp initialization
  49.  
  50. BOOL CMdiApp::InitInstance()
  51. {
  52.     // Win32 multi-threading APIs are not available on non-NT versions
  53.     // of Windows less than Windows version 4.0.
  54.     if ((::GetVersion() & 0x80000000) && (BYTE(::GetVersion()) < 4))
  55.     {
  56.         AfxMessageBox(IDS_CANNOT_RUN_ON_16BIT_WINDOWS_LT_4);
  57.         return FALSE;
  58.     }
  59.  
  60.     Enable3dControls();
  61.  
  62.     // create main MDI Frame window
  63.     CMainFrame* pMainFrame = new CMainFrame;
  64.     if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
  65.         return FALSE;
  66.     pMainFrame->ShowWindow(m_nCmdShow);
  67.     pMainFrame->UpdateWindow();
  68.     m_pMainWnd = pMainFrame;
  69.  
  70.     CBounceThread::m_hEventBounceThreadKilled
  71.         = CreateEvent(NULL, FALSE, FALSE, NULL); // auto reset, initially reset
  72.  
  73.     return TRUE;
  74. }
  75.  
  76. int CMdiApp::ExitInstance()
  77. {
  78.     CloseHandle(CBounceThread::m_hEventBounceThreadKilled);
  79.  
  80.     return CWinApp::ExitInstance();
  81. }
  82.  
  83. /////////////////////////////////////////////////////////////////////////////
  84. // CMdiApp commands
  85.  
  86. void CMdiApp::OnAppAbout()
  87. {
  88.     CDialog(IDD_ABOUTBOX).DoModal();
  89. }
  90.  
  91. /////////////////////////////////////////////////////////////////////////////
  92. // other globals
  93.  
  94. // Color array maps to Color menu
  95. COLORREF NEAR colorArray[] =
  96. {
  97.     RGB (0, 0, 0),
  98.     RGB (255, 0, 0),
  99.     RGB (0, 255, 0),
  100.     RGB (0, 0, 255),
  101.     RGB (255, 255, 255)
  102. };
  103.  
  104. /////////////////////////////////////////////////////////////////////////////
  105.